DrawCall ドローコール
https://tech.drecom.co.jp/what-is-drawcall/
用語
フレームバッファ
1画面分の描画内容をまるまる保存しておくメモリ領域
サイズは解像度によって変わるのだろう
GPU
フレームバッファのメモリ書き換え専用のプロセッサ(?)
ハードウェア
アプリケーションはドライバを経由してGPUにアクセスする
グラフィックスAPI
DirectX、OpenGL、Metalなど
グラフィックスAPIの関数を呼び出すと、ドライバがよしなにしてくれる
GPUの基準を定める、という見方が良さそう
ドローコール
グラフィックスAPIの画面の描画を実行する命令(コマンド)を呼び出すことを指す
命令は1つだけではない
まとめ
ドローコールを実行すると、以下の処理がCPUで実行され、オーバーヘッドになることがある
コマンドのバリデーション
コマンドのキューイング
GPU後への変換
GPUへの転送
Unity
SetPassCall
https://gyazo.com/bd1da8d4e6184989611fb93a6561e5b8
ProfilerのUnityステーションの動画
現在では、ドローコール自体が重いのではなく、SetPassCallが重いという話らしい
SRP Batcherによって減るのはSetPassCallで、DrawCallは減らない
Dynamic BatchではDrawCallは減らせていたが、DynamicBatch自体が重いという話で、方向転換したっぽい
GPU負荷
XCode FrameDebbugerがおすすめ
XcodeでmetalのGPU Profileをする